home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Games of Daze
/
Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso
/
x2ftp
/
msdos
/
math
/
nrpas13
/
laguer.dem
< prev
next >
Wrap
Text File
|
1991-04-29
|
1KB
|
58 lines
PROGRAM d9r10(input,output);
(* driver for routine LAGUER *)
CONST
m=4;
twomp2=10; (* twomp2=2*m+2 *)
ntry=21;
twontry=42; (* twontry=2*ntry *)
eps=1.0e-6;
TYPE
glcarray = ARRAY [1..twomp2] OF real;
gl2array = ARRAY [1..2] OF real;
VAR
i,iflag,j,n : integer;
polish : boolean;
x : gl2array;
a : glcarray;
y : ARRAY [1..twontry] OF real;
(*$I MODFILE.PAS *)
(*$I LAGUER.PAS *)
BEGIN
a[1] := 0.0; a[2] := 2.0;
a[3] := 0.0; a[4] := 0.0;
a[5] := -1.0; a[6] := -2.0;
a[7] := 0.0; a[8] := 0.0;
a[9] := 1.0; a[10] := 0.0;
writeln;
writeln('Roots of polynomial x^4-(1+2i)*x^2+2i');
writeln('real':15,'complex':13);
n := 0;
polish := false;
FOR i := 1 to ntry DO BEGIN
x[1] := (i-11.0)/10.0;
x[2] := (i-11.0)/10.0;
laguer(a,m,x,eps,polish);
IF (n = 0) THEN BEGIN
n := 1;
y[1] := x[1];
y[2] := x[2];
writeln(n:5,x[1]:12:6,x[2]:12:6)
END ELSE BEGIN
iflag := 0;
FOR j := 1 to n DO BEGIN
IF (sqrt(sqr(x[1]-y[2*j-1])+sqr(x[2]-y[2*j]))
<= eps*sqrt(sqr(x[1])+sqr(x[2]))) THEN
iflag := 1
END;
IF (iflag = 0) THEN BEGIN
n := n+1;
y[2*n-1] := x[1];
y[2*n] := x[2];
writeln(n:5,x[1]:12:6,x[2]:12:6)
END
END
END
END.